package com.ccf.business.etl.service;

import com.ccf.business.etl.model.Task;
import com.common.model.pojo.Query;
import com.common.model.result.PageResult;
import com.service.mybatis.service.ISuperService;

import java.util.List;
import java.util.Set;


/**
 * 任务调度表
 *
 * @author zhaoj
 * @date 2021-12-01 15:15:53
 */
public interface ITaskService extends ISuperService<Task> {
    /**
     * 列表
     * @param query
     * @return
     */
    PageResult<Task> findList(Query query);

    /**
     * 执行调度
     * @param task
     * @return
     */
    boolean submit(Task task);

    /**
     * 批量删除
     * @param asList
     * @return
     */
    boolean deleteBatch(List<String> asList);

    /**
     * 启动任务
     * @param ids
     * @return
     */
    boolean start(List<String> ids);

    /**
     * 停止调度任务
     * @param ids
     * @return
     */
    boolean stop(List<String> ids);

    /**
     * 手动执行一次
     * @param task
     * @return
     */
    boolean trigger(Task task);

    /**
     * 运行任务
     * @param task
     */
    void running(Task task);

    /**
     * 完成任务
     */
    void finish(String jobId, String status);

    /**
     * 根据流程id查询任务
     * @param ids
     * @return
     */
    List<Task> getTaskByFlowIds(Set<String> ids);
}

